// 添加千分位分隔符
String _addThousandSeparators(String number) {
  // 处理可能包含*的情况，只对数字部分添加千分位分隔符
  String digits = number.replaceAll('*', '');
  if (digits.isEmpty) return number;

  // 反转字符串以便从右边开始处理
  String reversed = digits.split('').reversed.join('');
  // 每3位添加一个逗号
  String withSeparators = '';
  for (int i = 0; i < reversed.length; i++) {
    if (i > 0 && i % 3 == 0) {
      withSeparators += ',';
    }
    withSeparators += reversed[i];
  }
  // 再次反转回来
  String result = withSeparators.split('').reversed.join('');

  // 恢复原始的*位置
  String finalResult = '';
  int digitIndex = 0;
  for (int i = 0; i < number.length; i++) {
    if (number[i] == '*') {
      finalResult += '*';
    } else {
      if (digitIndex < result.length) {
        finalResult += result[digitIndex];
        digitIndex++;
      }
    }
  }

  return finalResult;
}

class FmtUtil {
  // 格式化金额为千分位格式
  static String formatBalanceWithThousandSeparators(String balance) {
    if (balance.isEmpty) return '0.00';

    // 检查是否包含小数点
    if (balance.contains('.')) {
      List<String> parts = balance.split('.');
      String integerPart = parts[0];
      String decimalPart = parts[1];

      // 为整数部分添加千分位分隔符
      String formattedInteger = _addThousandSeparators(integerPart);
      // 确保小数部分有两位
      String formattedDecimal = decimalPart.padRight(2, '0').substring(0, 2);

      return '$formattedInteger.$formattedDecimal';
    } else {
      // 没有小数点的情况
      String formattedInteger = _addThousandSeparators(balance);
      return '$formattedInteger.00';
    }
  }
}
